package collection;

import java.util.ArrayList;
import java.util.List;
/**
 * List接口:
 * 1.List接口继承自Collection接口，为有序可重复集合，提供了一套可以通过下标来操作元素的方法
 * 2.有两个常见的实现类:
 *   1)ArrayList:内部使用数组实现，查询性能更好(直接下标找到物理地址)、增删性能不好
 *   2)LinkedList:内部使用链表实现，只记首尾，所以中间元素查询性能不好，首尾增删性能好
 *     注意:在对集合操作的增删性能没有特别苛刻的要求时，通常选择ArrayList
 */
public class ListDemo1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("five");
        System.out.println("list:"+list);   //list:[one, two, three, four, five]

        String e = list.get(3);             //获取下标为3的元素
        System.out.println("e:"+e);         //e:four
        for (int i = 0; i < list.size(); i++){
            System.out.println(list.get(i));
        }
        System.out.println("----------------------------");
        for (String s:list){
            System.out.println(s);
        }
        System.out.println("----------------------------");
        list.set(2,"six");                  //修改下标为2的元素为six---常规操作
        //String old = list.set(2,"six");     //修改下标为2的元素为six，并返回被修改的元素
        //System.out.println("old:"+old);     //old:three
        System.out.println("list:"+list);   //list:[one, two, sxi, four, five]
    }
}
